package cn.net.cfss.fgbp.api.console.dto;

import cn.net.cfss.fgbp.api.console.constant.LoginModeEnum;
import cn.net.cfss.fgbp.api.console.constant.LoginResultEnum;
import cn.net.cfss.fgbp.api.console.constant.LoginTypeEnum;

import javax.persistence.*;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.FgbpEnumSerializer;

@Table(name = "t_sys_user_login_log")
public class SysUserLoginLogDto extends BaseDto {
    /**
     * 归属用户
     */
    @Column(name = "USER_ID")
    private String userId;

    /**
     * 登录名称
     */
    @Column(name = "LOGIN_NAME")
    private String loginName;

    /**
     * 登录凭证
     */
    @Column(name = "LOGIN_CREDENTIAL")
    private String loginCredential;

    /**
     * 登录类型(0-登录;1-登出)
     */
    @Column(name = "LOGIN_TYPE")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private LoginTypeEnum loginType;

    /**
     * 登录方式(0-用户名密码;1-手机号密码;2-邮箱密码;3-微信;4-QQ)
     */
    @Column(name = "LOGIN_MODE")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private LoginModeEnum loginMode;

    /**
     * 用户代理
     */
    @Column(name = "USER_AGENT")
    private String userAgent;

    /**
     * 登录IP
     */
    @Column(name = "LOGIN_IP")
    private String loginIp;

    /**
     * 登录结果(0-成功;1-失败)
     */
    @Column(name = "LOGIN_RESULT")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private LoginResultEnum loginResult;

    /**
     * 异常信息
     */
    @Column(name = "EXCEPTION")
    private String exception;

    /**
     * 备注
     */
    @Column(name = "REMARK")
    private String remark;

    /**
     * 获取归属用户
     *
     * @return USER_ID - 归属用户
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置归属用户
     *
     * @param userId 归属用户
     */
    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    /**
     * 获取登录名称
     *
     * @return LOGIN_NAME - 登录名称
     */
    public String getLoginName() {
        return loginName;
    }

    /**
     * 设置登录名称
     *
     * @param loginName 登录名称
     */
    public void setLoginName(String loginName) {
        this.loginName = loginName == null ? null : loginName.trim();
    }

    /**
     * 获取登录凭证
     *
     * @return LOGIN_CREDENTIAL - 登录凭证
     */
    public String getLoginCredential() {
        return loginCredential;
    }

    /**
     * 设置登录凭证
     *
     * @param loginCredential 登录凭证
     */
    public void setLoginCredential(String loginCredential) {
        this.loginCredential = loginCredential == null ? null : loginCredential.trim();
    }

    /**
     * 获取登录类型(0-登录;1-登出)
     *
     * @return LOGIN_TYPE - 登录类型(0-登录;1-登出)
     */
    public LoginTypeEnum getLoginType() {
        return loginType;
    }

    /**
     * 设置登录类型(0-登录;1-登出)
     *
     * @param loginType 登录类型(0-登录;1-登出)
     */
    public void setLoginType(LoginTypeEnum loginType) {
        this.loginType = loginType;
    }

    /**
     * 获取登录方式(0-用户名密码;1-手机号密码;2-邮箱密码;3-微信;4-QQ)
     *
     * @return LOGIN_MODE - 登录方式(0-用户名密码;1-手机号密码;2-邮箱密码;3-微信;4-QQ)
     */
    public LoginModeEnum getLoginMode() {
        return loginMode;
    }

    /**
     * 设置登录方式(0-用户名密码;1-手机号密码;2-邮箱密码;3-微信;4-QQ)
     *
     * @param loginMode 登录方式(0-用户名密码;1-手机号密码;2-邮箱密码;3-微信;4-QQ)
     */
    public void setLoginMode(LoginModeEnum loginMode) {
        this.loginMode = loginMode;
    }

    /**
     * 获取用户代理
     *
     * @return USER_AGENT - 用户代理
     */
    public String getUserAgent() {
        return userAgent;
    }

    /**
     * 设置用户代理
     *
     * @param userAgent 用户代理
     */
    public void setUserAgent(String userAgent) {
        this.userAgent = userAgent == null ? null : userAgent.trim();
    }

    /**
     * 获取登录IP
     *
     * @return LOGIN_IP - 登录IP
     */
    public String getLoginIp() {
        return loginIp;
    }

    /**
     * 设置登录IP
     *
     * @param loginIp 登录IP
     */
    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp == null ? null : loginIp.trim();
    }

    /**
     * 获取登录结果(0-成功;1-失败)
     *
     * @return LOGIN_RESULT - 登录结果(0-成功;1-失败)
     */
    public LoginResultEnum getLoginResult() {
        return loginResult;
    }

    /**
     * 设置登录结果(0-成功;1-失败)
     *
     * @param loginResult 登录结果(0-成功;1-失败)
     */
    public void setLoginResult(LoginResultEnum loginResult) {
        this.loginResult = loginResult;
    }

    /**
     * 获取异常信息
     *
     * @return EXCEPTION - 异常信息
     */
    public String getException() {
        return exception;
    }

    /**
     * 设置异常信息
     *
     * @param exception 异常信息
     */
    public void setException(String exception) {
        this.exception = exception == null ? null : exception.trim();
    }

    /**
     * 获取备注
     *
     * @return REMARK - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

}